SSHで複数ファイルから文字列を検索・置換する方法

公開日:2018/03/04  最終更新日:2019/10/21  カテゴリー:SSH

SSHで複数ファイルから 文字列を検索・置換するコマンドを紹介します。
このコマンドのおかげで わざわざ検索対象のファイルをダウンロードしてソフトを使っていた手間が省け楽になりました。

1. 検索コマンド

コマンドを実行した ディレクトリ以下のすべてのファイルから `target` という単語を検索するコマンド。

A.該当のファイル名とその行の記述を出力するコマンド
find ./ -type f -print | xargs grep 'target'
B.該当のファイル名のみを出力するコマンド
grep 'target' -rl ./
Aのコマンドは一部サーバーで使用できない可能性があります
XSERVERの新環境などでは、「該当のファイル名とその行の記述を出力するコマンド」はエラーになります。「該当のファイル名のみを出力するコマンド」は利用できるので、こちらをご利用ください。

2. 置換コマンド

コマンドを実行した ディレクトリ以下のすべてのファイルから `target` という単語を `replace` に置換するコマンド。

grep -rl "target" ./ | xargs perl -i -pe "s/target/replace/g"
/ がある場合は エスケープする必要がある
そのまま 記述するとエラーになりますので \ を前につける必要があります。
特に http:// などを含む 場合は 要注意です。

参考文献

本サイトでは URLに日本語を含んでいます。
メールなどで共有する場合は リンクとして認識されない場合がございますので、こちらをご利用ください。